using Prisa.Entities;

using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace Prisa.DataAccess.Mapping
{
    public class PRODUCTOMap : EntityTypeConfiguration<PRODUCTO>
    {
        public PRODUCTOMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.Codigo)
                .IsRequired()
                .HasMaxLength(350);

            this.Property(t => t.Descripcion)
                .IsRequired()
                .HasMaxLength(350);

            // Table & Column Mappings
            this.ToTable("PRODUCTO");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.CategoriaId).HasColumnName("CategoriaId");
            this.Property(t => t.Codigo).HasColumnName("Codigo");
            this.Property(t => t.Descripcion).HasColumnName("Descripcion");
            this.Property(t => t.Costo).HasColumnName("Costo");
            this.Property(t => t.Precio).HasColumnName("Precio");
            this.Property(t => t.Stock).HasColumnName("Stock");

            // Relationships
            this.HasRequired(t => t.CATEGORIA)
                .WithMany(t => t.PRODUCTOes)
                .HasForeignKey(d => d.CategoriaId);
                //.WillCascadeOnDelete(false);

        }
    }
}
